package com.example.jjwtlesson02.controller;

import com.example.jjwtlesson02.annotation.PassToken;
import com.example.jjwtlesson02.constant.ConstantKey;
import com.example.jjwtlesson02.utils.JwtHelper;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: anlu
 * @Date: 2021/08/12
 * @Description:
 */
@RestController
public class LoginController {
    @Autowired
    private JwtHelper jwtHelper;

    /**
     *设置过期时间 365 * 24 * 60 * 60秒
     * (这里为了方便测试，所以设置了1年的过期时间，实际项目需要根据自己的情况修改)
     * @param
     * @author: anlu
     * @time: 2021/8/12
     */
    @PassToken
    @RequestMapping("/token")
    public String login(){
//        String subject = "anlu";
//        String token = Jwts.builder()
//                .setSubject(subject)
//                // 设置过期时间 365 * 24 * 60 * 60秒
//                // * (这里为了方便测试，所以设置了1年的过期时间，实际项目需要根据自己的情况修改)
//                .setExpiration(new Date(System.currentTimeMillis() + 365 * 24 * 60 * 60 * 1000))
//                //采用什么算法是可以自己选择的，不一定非要采用HS512
//                .signWith(SignatureAlgorithm.HS512, ConstantKey.SIGNING_KEY)
//                .compact();

        String token = jwtHelper.createToken("anlu","anruirui");
        return token;
    }

    @RequestMapping(value = "/index")
    public String index(){
        return "恭喜~ 进入index页面";
    }

}
